//package com.hexing.forecast.LSTM;
//
//import org.deeplearning4j.nn.conf.layers.LSTM;
//import org.deeplearning4j.nn.modelimport.keras.KerasModelImport;
//import org.deeplearning4j.nn.multilayer.MultiLayerNetwork;
////import org.deeplearning4j.zoo.model.LSTM;
//import org.nd4j.linalg.api.ndarray.INDArray;
////import org.nd4j.linalg.dataset.api.preprocessor.TimeSeriesPreprocessing;
//
//public class test {
//
//    public static void main(String[] args) {
//        // 定义时间序列数据的形状
//        int[] inputShape = new int[]{1, 1, 10}; // (批次大小, 时间步长, 特征数)
//        int outputShape = 1; // 输出维度
//
//        // 定义LSTM模型的参数
//        int numHiddenUnits = 50; // 隐藏层单元数
//        int batchSize = 10; // 批次大小
//        int timeSeriesLength = 100; // 时间序列长度
//
//        // 加载时间序列数据，这里使用随机数作为示例数据
//        INDArray data = TimeSeriesPreprocessing.constantMean(new double[]{1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0});
//        INDArray reshapedData = data.reshape(inputShape);
//
//        // 定义LSTM模型
//        LSTM lstm = new LSTM();
//        MultiLayerNetwork model = KerasModelImport.importKerasSequentialModelAndWeights(lstm);
//        model.setInputShape(inputShape);
//        model.setOutputShape(outputShape);
//
//        // 使用模型进行预测
//        INDArray predicted = model.output(reshapedData);
//        System.out.println("Predicted value: " + predicted);
//
//    }
//
//    public static void main1(String[] args) throws Exception {
//        // 定义时间序列数据的形状
//        int[] inputShape = new int[]{1, 1, 10}; // (批次大小, 时间步长, 特征数)
//        int outputShape = 1; // 输出维度
//
//        // 定义LSTM模型的参数
//        int numHiddenUnits = 50; // 隐藏层单元数
//        int batchSize = 10; // 批次大小
//        int timeSeriesLength = 100; // 时间序列长度
//
//        // 加载时间序列数据，这里使用随机数作为示例数据
//        INDArray data = TimeSeriesPreprocessing.constantMean(new double[]{1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0});
//        INDArray reshapedData = data.reshape(inputShape);
//
//        // 定义LSTM模型
//        LSTM lstm = new LSTM(numHiddenUnits, outputShape);
//        MultiLayerNetwork model = KerasModelImport.importKerasSequentialModelAndWeights(lstm);
//        model.setInputShape(inputShape);
//        model.setOutputShape(outputShape);
//
//        // 使用模型进行预测，输入数据为前面10个时间步的数据，预测下一个时间步的负荷
//        INDArray inputData = reshapedData.get(new int[]{0, 0, 0}, new int[]{batchSize, timeSeriesLength-1, 1});
//        INDArray predicted = model.output(inputData);
//        System.out.println("Predicted load: " + predicted);
//    }
//
//}
